#ifndef __egl_h_
#define __egl_h_ 1

#ifdef __cplusplus
extern "C"
{
#endif

    /*
    ** Copyright 2013-2020 The Khronos Group Inc.
    ** SPDX-License-Identifier: Apache-2.0
    **
    ** This header is generated from the Khronos EGL XML API Registry.
    ** The current version of the Registry, generator scripts
    ** used to make the header, and the header can be found at
    **   http://www.khronos.org/registry/egl
    **
    ** Khronos $Git commit SHA1: 5a9a7e3fcb $ on $Git commit date: 2020-08-24
    *11:05:32 -0700 $
    */

#include <EGL/eglplatform.h>

#ifndef EGL_EGL_PROTOTYPES
#define EGL_EGL_PROTOTYPES 1
#endif

    /* Generated on date 20201001 */

    /* Generated C header for:
     * API: egl
     * Versions considered: .*
     * Versions emitted: .*
     * Default extensions included: None
     * Additional extensions included: _nomatch_^
     * Extensions removed: _nomatch_^
     */

#ifndef EGL_VERSION_1_0
#define EGL_VERSION_1_0 1
    typedef unsigned int EGLBoolean;
    typedef void* EGLDisplay;
#include <EGL/eglplatform.h>
#include <KHR/khrplatform.h>
    typedef void* EGLConfig;
    typedef void* EGLSurface;
    typedef void* EGLContext;
    typedef void (*__eglMustCastToProperFunctionPointerType)(void);
#define EGL_ALPHA_SIZE 0x3021
#define EGL_BAD_ACCESS 0x3002
#define EGL_BAD_ALLOC 0x3003
#define EGL_BAD_ATTRIBUTE 0x3004
#define EGL_BAD_CONFIG 0x3005
#define EGL_BAD_CONTEXT 0x3006
#define EGL_BAD_CURRENT_SURFACE 0x3007
#define EGL_BAD_DISPLAY 0x3008
#define EGL_BAD_MATCH 0x3009
#define EGL_BAD_NATIVE_PIXMAP 0x300A
#define EGL_BAD_NATIVE_WINDOW 0x300B
#define EGL_BAD_PARAMETER 0x300C
#define EGL_BAD_SURFACE 0x300D
#define EGL_BLUE_SIZE 0x3022
#define EGL_BUFFER_SIZE 0x3020
#define EGL_CONFIG_CAVEAT 0x3027
#define EGL_CONFIG_ID 0x3028
#define EGL_CORE_NATIVE_ENGINE 0x305B
#define EGL_DEPTH_SIZE 0x3025
#define EGL_DONT_CARE EGL_CAST(EGLint, -1)
#define EGL_DRAW 0x3059
#define EGL_EXTENSIONS 0x3055
#define EGL_FALSE 0
#define EGL_GREEN_SIZE 0x3023
#define EGL_HEIGHT 0x3056
#define EGL_LARGEST_PBUFFER 0x3058
#define EGL_LEVEL 0x3029
#define EGL_MAX_PBUFFER_HEIGHT 0x302A
#define EGL_MAX_PBUFFER_PIXELS 0x302B
#define EGL_MAX_PBUFFER_WIDTH 0x302C
#define EGL_NATIVE_RENDERABLE 0x302D
#define EGL_NATIVE_VISUAL_ID 0x302E
#define EGL_NATIVE_VISUAL_TYPE 0x302F
#define EGL_NONE 0x3038
#define EGL_NON_CONFORMANT_CONFIG 0x3051
#define EGL_NOT_INITIALIZED 0x3001
#define EGL_NO_CONTEXT EGL_CAST(EGLContext, 0)
#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay, 0)
#define EGL_NO_SURFACE EGL_CAST(EGLSurface, 0)
#define EGL_PBUFFER_BIT 0x0001
#define EGL_PIXMAP_BIT 0x0002
#define EGL_READ 0x305A
#define EGL_RED_SIZE 0x3024
#define EGL_SAMPLES 0x3031
#define EGL_SAMPLE_BUFFERS 0x3032
#define EGL_SLOW_CONFIG 0x3050
#define EGL_STENCIL_SIZE 0x3026
#define EGL_SUCCESS 0x3000
#define EGL_SURFACE_TYPE 0x3033
#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
#define EGL_TRANSPARENT_RED_VALUE 0x3037
#define EGL_TRANSPARENT_RGB 0x3052
#define EGL_TRANSPARENT_TYPE 0x3034
#define EGL_TRUE 1
#define EGL_VENDOR 0x3053
#define EGL_VERSION 0x3054
#define EGL_WIDTH 0x3057
#define EGL_WINDOW_BIT 0x0004
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC)(
        EGLDisplay dpy,
        const EGLint* attrib_list,
        EGLConfig* configs,
        EGLint config_size,
        EGLint* num_config);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC)(
        EGLDisplay dpy,
        EGLSurface surface,
        EGLNativePixmapType target);
    typedef EGLContext(EGLAPIENTRYP PFNEGLCREATECONTEXTPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        EGLContext share_context,
        const EGLint* attrib_list);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        const EGLint* attrib_list);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        EGLNativePixmapType pixmap,
        const EGLint* attrib_list);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        EGLNativeWindowType win,
        const EGLint* attrib_list);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy,
                                                              EGLContext ctx);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC)(
        EGLDisplay dpy,
        EGLSurface surface);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy,
                                                               EGLConfig config,
                                                               EGLint attribute,
                                                               EGLint* value);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETCONFIGSPROC)(EGLDisplay dpy,
                                                          EGLConfig* configs,
                                                          EGLint config_size,
                                                          EGLint* num_config);
    typedef EGLDisplay(EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC)(void);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC)(
        EGLint readdraw);
    typedef EGLDisplay(EGLAPIENTRYP PFNEGLGETDISPLAYPROC)(
        EGLNativeDisplayType display_id);
    typedef EGLint(EGLAPIENTRYP PFNEGLGETERRORPROC)(void);
    typedef __eglMustCastToProperFunctionPointerType(
        EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC)(const char* procname);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLINITIALIZEPROC)(EGLDisplay dpy,
                                                          EGLint* major,
                                                          EGLint* minor);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLMAKECURRENTPROC)(EGLDisplay dpy,
                                                           EGLSurface draw,
                                                           EGLSurface read,
                                                           EGLContext ctx);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy,
                                                            EGLContext ctx,
                                                            EGLint attribute,
                                                            EGLint* value);
    typedef const char*(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy,
                                                            EGLint name);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy,
                                                            EGLSurface surface,
                                                            EGLint attribute,
                                                            EGLint* value);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy,
                                                           EGLSurface surface);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLTERMINATEPROC)(EGLDisplay dpy);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLWAITGLPROC)(void);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLWAITNATIVEPROC)(EGLint engine);
#if EGL_EGL_PROTOTYPES
    EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy,
                                                  const EGLint* attrib_list,
                                                  EGLConfig* configs,
                                                  EGLint config_size,
                                                  EGLint* num_config);
    EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy,
                                                 EGLSurface surface,
                                                 EGLNativePixmapType target);
    EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy,
                                                   EGLConfig config,
                                                   EGLContext share_context,
                                                   const EGLint* attrib_list);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreatePbufferSurface(EGLDisplay dpy,
                            EGLConfig config,
                            const EGLint* attrib_list);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreatePixmapSurface(EGLDisplay dpy,
                           EGLConfig config,
                           EGLNativePixmapType pixmap,
                           const EGLint* attrib_list);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreateWindowSurface(EGLDisplay dpy,
                           EGLConfig config,
                           EGLNativeWindowType win,
                           const EGLint* attrib_list);
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy,
                                                    EGLContext ctx);
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy,
                                                    EGLSurface surface);
    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy,
                                                     EGLConfig config,
                                                     EGLint attribute,
                                                     EGLint* value);
    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy,
                                                EGLConfig* configs,
                                                EGLint config_size,
                                                EGLint* num_config);
    EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
    EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
    EGLAPI EGLDisplay EGLAPIENTRY
    eglGetDisplay(EGLNativeDisplayType display_id);
    EGLAPI EGLint EGLAPIENTRY eglGetError(void);
    EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
    eglGetProcAddress(const char* procname);
    EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy,
                                                EGLint* major,
                                                EGLint* minor);
    EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy,
                                                 EGLSurface draw,
                                                 EGLSurface read,
                                                 EGLContext ctx);
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy,
                                                  EGLContext ctx,
                                                  EGLint attribute,
                                                  EGLint* value);
    EGLAPI const char* EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
    EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy,
                                                  EGLSurface surface,
                                                  EGLint attribute,
                                                  EGLint* value);
    EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy,
                                                 EGLSurface surface);
    EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
#endif
#endif /* EGL_VERSION_1_0 */

#ifndef EGL_VERSION_1_1
#define EGL_VERSION_1_1 1
#define EGL_BACK_BUFFER 0x3084
#define EGL_BIND_TO_TEXTURE_RGB 0x3039
#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
#define EGL_CONTEXT_LOST 0x300E
#define EGL_MIN_SWAP_INTERVAL 0x303B
#define EGL_MAX_SWAP_INTERVAL 0x303C
#define EGL_MIPMAP_TEXTURE 0x3082
#define EGL_MIPMAP_LEVEL 0x3083
#define EGL_NO_TEXTURE 0x305C
#define EGL_TEXTURE_2D 0x305F
#define EGL_TEXTURE_FORMAT 0x3080
#define EGL_TEXTURE_RGB 0x305D
#define EGL_TEXTURE_RGBA 0x305E
#define EGL_TEXTURE_TARGET 0x3081
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy,
                                                            EGLSurface surface,
                                                            EGLint buffer);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC)(
        EGLDisplay dpy,
        EGLSurface surface,
        EGLint buffer);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy,
                                                             EGLSurface surface,
                                                             EGLint attribute,
                                                             EGLint value);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy,
                                                            EGLint interval);
#if EGL_EGL_PROTOTYPES
    EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy,
                                                  EGLSurface surface,
                                                  EGLint buffer);
    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy,
                                                     EGLSurface surface,
                                                     EGLint buffer);
    EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy,
                                                   EGLSurface surface,
                                                   EGLint attribute,
                                                   EGLint value);
    EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy,
                                                  EGLint interval);
#endif
#endif /* EGL_VERSION_1_1 */

#ifndef EGL_VERSION_1_2
#define EGL_VERSION_1_2 1
    typedef unsigned int EGLenum;
    typedef void* EGLClientBuffer;
#define EGL_ALPHA_FORMAT 0x3088
#define EGL_ALPHA_FORMAT_NONPRE 0x308B
#define EGL_ALPHA_FORMAT_PRE 0x308C
#define EGL_ALPHA_MASK_SIZE 0x303E
#define EGL_BUFFER_PRESERVED 0x3094
#define EGL_BUFFER_DESTROYED 0x3095
#define EGL_CLIENT_APIS 0x308D
#define EGL_COLORSPACE 0x3087
#define EGL_COLORSPACE_sRGB 0x3089
#define EGL_COLORSPACE_LINEAR 0x308A
#define EGL_COLOR_BUFFER_TYPE 0x303F
#define EGL_CONTEXT_CLIENT_TYPE 0x3097
#define EGL_DISPLAY_SCALING 10000
#define EGL_HORIZONTAL_RESOLUTION 0x3090
#define EGL_LUMINANCE_BUFFER 0x308F
#define EGL_LUMINANCE_SIZE 0x303D
#define EGL_OPENGL_ES_BIT 0x0001
#define EGL_OPENVG_BIT 0x0002
#define EGL_OPENGL_ES_API 0x30A0
#define EGL_OPENVG_API 0x30A1
#define EGL_OPENVG_IMAGE 0x3096
#define EGL_PIXEL_ASPECT_RATIO 0x3092
#define EGL_RENDERABLE_TYPE 0x3040
#define EGL_RENDER_BUFFER 0x3086
#define EGL_RGB_BUFFER 0x308E
#define EGL_SINGLE_BUFFER 0x3085
#define EGL_SWAP_BEHAVIOR 0x3093
#define EGL_UNKNOWN EGL_CAST(EGLint, -1)
#define EGL_VERTICAL_RESOLUTION 0x3091
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLBINDAPIPROC)(EGLenum api);
    typedef EGLenum(EGLAPIENTRYP PFNEGLQUERYAPIPROC)(void);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(
        EGLDisplay dpy,
        EGLenum buftype,
        EGLClientBuffer buffer,
        EGLConfig config,
        const EGLint* attrib_list);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASETHREADPROC)(void);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLWAITCLIENTPROC)(void);
#if EGL_EGL_PROTOTYPES
    EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
    EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreatePbufferFromClientBuffer(EGLDisplay dpy,
                                     EGLenum buftype,
                                     EGLClientBuffer buffer,
                                     EGLConfig config,
                                     const EGLint* attrib_list);
    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
#endif
#endif /* EGL_VERSION_1_2 */

#ifndef EGL_VERSION_1_3
#define EGL_VERSION_1_3 1
#define EGL_CONFORMANT 0x3042
#define EGL_CONTEXT_CLIENT_VERSION 0x3098
#define EGL_MATCH_NATIVE_PIXMAP 0x3041
#define EGL_OPENGL_ES2_BIT 0x0004
#define EGL_VG_ALPHA_FORMAT 0x3088
#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
#define EGL_VG_COLORSPACE 0x3087
#define EGL_VG_COLORSPACE_sRGB 0x3089
#define EGL_VG_COLORSPACE_LINEAR 0x308A
#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
#endif /* EGL_VERSION_1_3 */

#ifndef EGL_VERSION_1_4
#define EGL_VERSION_1_4 1
#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType, 0)
#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
#define EGL_MULTISAMPLE_RESOLVE 0x3099
#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
#define EGL_OPENGL_API 0x30A2
#define EGL_OPENGL_BIT 0x0008
#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
    typedef EGLContext(EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC)(void);
#if EGL_EGL_PROTOTYPES
    EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
#endif
#endif /* EGL_VERSION_1_4 */

#ifndef EGL_VERSION_1_5
#define EGL_VERSION_1_5 1
    typedef void* EGLSync;
    typedef intptr_t EGLAttrib;
    typedef khronos_utime_nanoseconds_t EGLTime;
    typedef void* EGLImage;
#define EGL_CONTEXT_MAJOR_VERSION 0x3098
#define EGL_CONTEXT_MINOR_VERSION 0x30FB
#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
#define EGL_NO_RESET_NOTIFICATION 0x31BE
#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
#define EGL_OPENGL_ES3_BIT 0x00000040
#define EGL_CL_EVENT_HANDLE 0x309C
#define EGL_SYNC_CL_EVENT 0x30FE
#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
#define EGL_SYNC_TYPE 0x30F7
#define EGL_SYNC_STATUS 0x30F1
#define EGL_SYNC_CONDITION 0x30F8
#define EGL_SIGNALED 0x30F2
#define EGL_UNSIGNALED 0x30F3
#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull
#define EGL_TIMEOUT_EXPIRED 0x30F5
#define EGL_CONDITION_SATISFIED 0x30F6
#define EGL_NO_SYNC EGL_CAST(EGLSync, 0)
#define EGL_SYNC_FENCE 0x30F9
#define EGL_GL_COLORSPACE 0x309D
#define EGL_GL_COLORSPACE_SRGB 0x3089
#define EGL_GL_COLORSPACE_LINEAR 0x308A
#define EGL_GL_RENDERBUFFER 0x30B9
#define EGL_GL_TEXTURE_2D 0x30B1
#define EGL_GL_TEXTURE_LEVEL 0x30BC
#define EGL_GL_TEXTURE_3D 0x30B2
#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
#define EGL_IMAGE_PRESERVED 0x30D2
#define EGL_NO_IMAGE EGL_CAST(EGLImage, 0)
    typedef EGLSync(EGLAPIENTRYP PFNEGLCREATESYNCPROC)(
        EGLDisplay dpy,
        EGLenum type,
        const EGLAttrib* attrib_list);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCPROC)(EGLDisplay dpy,
                                                           EGLSync sync);
    typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC)(EGLDisplay dpy,
                                                          EGLSync sync,
                                                          EGLint flags,
                                                          EGLTime timeout);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy,
                                                             EGLSync sync,
                                                             EGLint attribute,
                                                             EGLAttrib* value);
    typedef EGLImage(EGLAPIENTRYP PFNEGLCREATEIMAGEPROC)(
        EGLDisplay dpy,
        EGLContext ctx,
        EGLenum target,
        EGLClientBuffer buffer,
        const EGLAttrib* attrib_list);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy,
                                                            EGLImage image);
    typedef EGLDisplay(EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC)(
        EGLenum platform,
        void* native_display,
        const EGLAttrib* attrib_list);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        void* native_window,
        const EGLAttrib* attrib_list);
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(
        EGLDisplay dpy,
        EGLConfig config,
        void* native_pixmap,
        const EGLAttrib* attrib_list);
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLWAITSYNCPROC)(EGLDisplay dpy,
                                                        EGLSync sync,
                                                        EGLint flags);
#if EGL_EGL_PROTOTYPES
    EGLAPI EGLSync EGLAPIENTRY eglCreateSync(EGLDisplay dpy,
                                             EGLenum type,
                                             const EGLAttrib* attrib_list);
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync(EGLDisplay dpy, EGLSync sync);
    EGLAPI EGLint EGLAPIENTRY eglClientWaitSync(EGLDisplay dpy,
                                                EGLSync sync,
                                                EGLint flags,
                                                EGLTime timeout);
    EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib(EGLDisplay dpy,
                                                   EGLSync sync,
                                                   EGLint attribute,
                                                   EGLAttrib* value);
    EGLAPI EGLImage EGLAPIENTRY eglCreateImage(EGLDisplay dpy,
                                               EGLContext ctx,
                                               EGLenum target,
                                               EGLClientBuffer buffer,
                                               const EGLAttrib* attrib_list);
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage(EGLDisplay dpy,
                                                  EGLImage image);
    EGLAPI EGLDisplay EGLAPIENTRY
    eglGetPlatformDisplay(EGLenum platform,
                          void* native_display,
                          const EGLAttrib* attrib_list);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreatePlatformWindowSurface(EGLDisplay dpy,
                                   EGLConfig config,
                                   void* native_window,
                                   const EGLAttrib* attrib_list);
    EGLAPI EGLSurface EGLAPIENTRY
    eglCreatePlatformPixmapSurface(EGLDisplay dpy,
                                   EGLConfig config,
                                   void* native_pixmap,
                                   const EGLAttrib* attrib_list);
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync(EGLDisplay dpy,
                                              EGLSync sync,
                                              EGLint flags);
#endif
#endif /* EGL_VERSION_1_5 */

#ifdef __cplusplus
}
#endif

#endif
